home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1995 November
/
EnigmA AMIGA RUN 02 (1995)(G.R. Edizioni)(IT)[!][issue 1995-11][Skylink CD].iso
/
earcd
/
util
/
text
/
megaed12.lha
/
MegaEdV1_2
/
Trans
/
PCQ.trans.p
< prev
next >
Wrap
Text File
|
1992-09-02
|
3KB
|
139 lines
PROGRAM PCQTrans;
{
Konvertiert PCQ-Fehlerdateien für MegaEd
von Wurzelsepp, 100% PD
}
{$I "include:exec/memory.i" }
{$I "include:libraries/dosextens.i" }
{$I "include:utils/Stringlib.i" }
CONST
file1 : String = "T:MegaEdMake-ErrFile";
file2 : String = "T:MegaEdMake-Errors";
pc : String = "PCQ complete";
error : String = "E";
back : String = "/";
ret : Char = CHR(10);
ver_text : String = "\0$VER: MegaEd-TransPCQ V1.01 (16.03.95)";
VAR
fileh : FileHandle;
meldung : BOOLEAN;
las,
len,
dummy : INTEGER;
old : Address;
off : ^Char;
PROCEDURE TickleOn;
BEGIN
Inc(las);
off:=Address(Integer(off)+1);
END;
BEGIN
IF DeleteFile(file2) THEN ;
meldung:=FALSE;
fileh:=DOSOpen (file1,MODE_OLDFILE);
IF fileh<>NIL THEN
BEGIN
dummy:=Seek(fileh,0,OFFSET_END);
len:=Seek(fileh,0,OFFSET_BEGINNING);
if len>0 THEN
BEGIN
old:=AllocMem (len,MEMF_PUBLIC+MEMF_CLEAR);
IF old=NIL THEN
BEGIN
DOSClose (fileh);
Exit;
END;
IF DOSRead(fileh,old,len)<>len THEN
BEGIN
FreeMem(old,len);
DOSClose(fileh);
Exit;
END;
END;
DOSClose(fileh);
IF (len=0) THEN Exit;
fileh:=DOSOpen (file2,MODE_NEWFILE);
IF fileh<>NIL THEN
BEGIN
las:=0;
off:=old;
WHILE las<len DO
BEGIN
WHILE (off^<>'"') AND (las<len) DO
TickleOn;
IF las<len THEN
BEGIN
meldung:=TRUE;
TickleOn;
{ Filename überlesen }
WHILE (off^<>'"') AND (las<len) DO
TickleOn;
IF las<len THEN
BEGIN
{ 5 Zeichen (' " At ') überspringen }
FOR dummy:=1 TO 5 DO
TickleOn;
IF las<len THEN
BEGIN
dummy:=DOSWrite (fileh,error,StrLen(error));
WHILE (off^<>',') AND (las<len) DO
BEGIN
dummy:=DOSWrite (fileh,off,1);
TickleOn;
END;
IF las<len THEN
BEGIN
dummy:=DOSWrite (fileh,back,StrLen(back));
TickleOn;
WHILE (off^<>' ') AND (las<len) DO
BEGIN
dummy:=DOSWrite (fileh,off,1);
TickleOn;
END;
IF las<len THEN
BEGIN
dummy:=DOSWrite (fileh,Adr(ret),1);
{ 3 Zeichen (' : ') überspringen }
FOR dummy:=1 TO 3 DO
TickleOn;
IF las<len THEN
BEGIN
WHILE (off^<>ret) AND (las<len) DO
BEGIN
dummy:=DOSWrite (fileh,off,1);
TickleOn;
END;
dummy:=DOSWrite (fileh,Adr(ret),1);
IF las<len THEN
TickleOn;
END;
END;
END;
END;
END;
END;
END;
DOSClose (fileh);
END;
FreeMem(old,len);
END;
IF meldung=FALSE THEN
IF DeleteFile(file2) THEN ;
END.